#include <iostream>

using namespace std;

struct Student
{
    int id;
    string name;
    int age;
    char gender;

    void show()
    {
        cout << "ID : " << id
             << ", Name : " << name
             << ", Age : " << age
             << ", Gender : " << gender << endl;
    }
};

/*
当前代码中结构体如果作为函数的参数，请严格遵守以下格式
    (Student &stu)，实际参数对应结构体变量
*/
void assign_student(Student &stu);

int main(int argc, char const *argv[])
{
    /*
    使用大括号对当前 Student 结构体变量进行赋值操作
    提供的数据必须满足结构体成员变量声明要求。同时
    顺序复合当前 Student 结构体成员变量顺序。
    */
    Student stu = {1, "磊哥", 16, 'M'};
    stu.show();

    /*
    实际参数就是对应的结构体变量
    */
    assign_student(stu);
    stu.show();

    return 0;
}

void assign_student(Student &stu)
{
    stu.id = 20;
    stu.name = "臀哥";
}
